<!-- HTML header for doxygen 1.9.1-->
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=9" />
    <meta name="generator" content="Doxygen 1.9.4" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>NumCpp: nc::coordinates Namespace Reference</title>
    <link href="tabs.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="dynsections.js"></script>
    <link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
    <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
    <link href="doxygen.css" rel="stylesheet" type="text/css" />
    <link href="doxygen-awesome.css" rel="stylesheet" type="text/css"/>
<link href="doxygen-awesome-sidebar-only-darkmode-toggle.css" rel="stylesheet" type="text/css"/>
    <!-- ... other metadata & script includes ... -->
    <script type="text/javascript" src="../doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js"></script>
    <script type="text/javascript">
        DoxygenAwesomeDarkModeToggle.init()
    </script>
    <script type="text/javascript"
        src="../doxygen-awesome-css/doxygen-awesome-fragment-copy-button.js"></script>
    <script type="text/javascript">
        DoxygenAwesomeFragmentCopyButton.init()
    </script>
    <script type="text/javascript" src="../doxygen-awesome-css/doxygen-awesome-paragraph-link.js"></script>
    <script type="text/javascript">
        DoxygenAwesomeParagraphLink.init()
    </script>
    <script type="text/javascript" src="../doxygen-awesome-css/doxygen-awesome-interactive-toc.js"></script>
    <script type="text/javascript">
        DoxygenAwesomeInteractiveToc.init()
    </script>
</head>
<body>
    <div id="top">
        <!-- do not remove this div, it is closed by doxygen! -->
        <div id="titlearea">
            <table cellspacing="0" cellpadding="0">
                <tbody>
                    <tr style="height: 56px;">
                        <td id="projectlogo"><img alt="Logo" src="NumCppLogoDoxygen.png" /></td>
                        <td id="projectalign" style="padding-left: 0.5em;">
                            <div id="projectname">NumCpp
                                &#160;<span id="projectnumber">2.12.1</span>
                            </div>
                            <div id="projectbrief">A Templatized Header Only C++ Implementation of the Python NumPy Library</div>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
        <!-- end header part --><!-- Generated by Doxygen 1.9.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('namespacenc_1_1coordinates.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">nc::coordinates Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespacenc_1_1coordinates_1_1reference__frames"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates_1_1reference__frames.html">reference_frames</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:namespacenc_1_1coordinates_1_1transforms"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates_1_1transforms.html">transforms</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cartensian coordinates.  <a href="classnc_1_1coordinates_1_1_cartesian.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnc_1_1coordinates_1_1_euler.html">Euler</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classnc_1_1coordinates_1_1_euler.html" title="Euler.">Euler</a>.  <a href="classnc_1_1coordinates_1_1_euler.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classnc_1_1coordinates_1_1_orientation.html">Orientation</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="classnc_1_1coordinates_1_1_orientation.html" title="Orientation.">Orientation</a>.  <a href="classnc_1_1coordinates_1_1_orientation.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a3d30468a53ed69d88df51039e1d80720"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#a3d30468a53ed69d88df51039e1d80720">angle</a> (const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;vec1, const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;vec2) noexcept</td></tr>
<tr class="memdesc:a3d30468a53ed69d88df51039e1d80720"><td class="mdescLeft">&#160;</td><td class="mdescRight">angle between the two vectors  <a href="namespacenc_1_1coordinates.html#a3d30468a53ed69d88df51039e1d80720">More...</a><br /></td></tr>
<tr class="separator:a3d30468a53ed69d88df51039e1d80720"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21d2802b6436b5e7a57a933b8070c75c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#a21d2802b6436b5e7a57a933b8070c75c">cross</a> (const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;vec1, const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;vec2) noexcept</td></tr>
<tr class="memdesc:a21d2802b6436b5e7a57a933b8070c75c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector cross product.  <a href="namespacenc_1_1coordinates.html#a21d2802b6436b5e7a57a933b8070c75c">More...</a><br /></td></tr>
<tr class="separator:a21d2802b6436b5e7a57a933b8070c75c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a061f64eae40b8086f97e56f5ae8f295d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#a061f64eae40b8086f97e56f5ae8f295d">norm</a> (const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;vec) noexcept</td></tr>
<tr class="memdesc:a061f64eae40b8086f97e56f5ae8f295d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector norm.  <a href="namespacenc_1_1coordinates.html#a061f64eae40b8086f97e56f5ae8f295d">More...</a><br /></td></tr>
<tr class="separator:a061f64eae40b8086f97e56f5ae8f295d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a999f3588049a4aae8d0a6bbdce9046d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#a999f3588049a4aae8d0a6bbdce9046d2">normalize</a> (const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;vec) noexcept</td></tr>
<tr class="memdesc:a999f3588049a4aae8d0a6bbdce9046d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">normalize the input vector  <a href="namespacenc_1_1coordinates.html#a999f3588049a4aae8d0a6bbdce9046d2">More...</a><br /></td></tr>
<tr class="separator:a999f3588049a4aae8d0a6bbdce9046d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1e4aa015b409852cbcd25eda9481655"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#af1e4aa015b409852cbcd25eda9481655">operator*</a> (const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;lhs, const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;rhs) noexcept</td></tr>
<tr class="memdesc:af1e4aa015b409852cbcd25eda9481655"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dot product of two cartesian points.  <a href="namespacenc_1_1coordinates.html#af1e4aa015b409852cbcd25eda9481655">More...</a><br /></td></tr>
<tr class="separator:af1e4aa015b409852cbcd25eda9481655"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c65cebf40f1ceebbbf80fc56e2d4bdf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#a0c65cebf40f1ceebbbf80fc56e2d4bdf">operator*</a> (const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;vec, double scalar) noexcept</td></tr>
<tr class="memdesc:a0c65cebf40f1ceebbbf80fc56e2d4bdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector scalar multiplication.  <a href="namespacenc_1_1coordinates.html#a0c65cebf40f1ceebbbf80fc56e2d4bdf">More...</a><br /></td></tr>
<tr class="separator:a0c65cebf40f1ceebbbf80fc56e2d4bdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3582936f7db85a7d9831e9a2402496f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#a3582936f7db85a7d9831e9a2402496f9">operator*</a> (double scalar, const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;vec) noexcept</td></tr>
<tr class="memdesc:a3582936f7db85a7d9831e9a2402496f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vector scalar multiplication.  <a href="namespacenc_1_1coordinates.html#a3582936f7db85a7d9831e9a2402496f9">More...</a><br /></td></tr>
<tr class="separator:a3582936f7db85a7d9831e9a2402496f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f5b3b14c6ed16cb8e338175e898e538"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#a6f5b3b14c6ed16cb8e338175e898e538">operator+</a> (const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;lhs, const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;rhs) noexcept</td></tr>
<tr class="memdesc:a6f5b3b14c6ed16cb8e338175e898e538"><td class="mdescLeft">&#160;</td><td class="mdescRight">Addition of two cartesian points.  <a href="namespacenc_1_1coordinates.html#a6f5b3b14c6ed16cb8e338175e898e538">More...</a><br /></td></tr>
<tr class="separator:a6f5b3b14c6ed16cb8e338175e898e538"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9915ea88507af06a577c392c5a71939"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#ab9915ea88507af06a577c392c5a71939">operator-</a> (const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;lhs, const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;rhs) noexcept</td></tr>
<tr class="memdesc:ab9915ea88507af06a577c392c5a71939"><td class="mdescLeft">&#160;</td><td class="mdescRight">Subtraction of two cartesian points.  <a href="namespacenc_1_1coordinates.html#ab9915ea88507af06a577c392c5a71939">More...</a><br /></td></tr>
<tr class="separator:ab9915ea88507af06a577c392c5a71939"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4708307f7b94f72b403c52bb10e81a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#af4708307f7b94f72b403c52bb10e81a4">operator/</a> (const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;vec, double denominator) noexcept</td></tr>
<tr class="memdesc:af4708307f7b94f72b403c52bb10e81a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scalar Division a cartesian point.  <a href="namespacenc_1_1coordinates.html#af4708307f7b94f72b403c52bb10e81a4">More...</a><br /></td></tr>
<tr class="separator:af4708307f7b94f72b403c52bb10e81a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f71fe712d74cf7677ad64e770761d95"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#a2f71fe712d74cf7677ad64e770761d95">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;vec)</td></tr>
<tr class="memdesc:a2f71fe712d74cf7677ad64e770761d95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream operator.  <a href="namespacenc_1_1coordinates.html#a2f71fe712d74cf7677ad64e770761d95">More...</a><br /></td></tr>
<tr class="separator:a2f71fe712d74cf7677ad64e770761d95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afde33ec04e407698b8d0826140b6619a"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#afde33ec04e407698b8d0826140b6619a">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classnc_1_1coordinates_1_1_euler.html">Euler</a> &amp;<a class="el" href="classnc_1_1coordinates_1_1_euler.html">Euler</a>)</td></tr>
<tr class="memdesc:afde33ec04e407698b8d0826140b6619a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream operator.  <a href="namespacenc_1_1coordinates.html#afde33ec04e407698b8d0826140b6619a">More...</a><br /></td></tr>
<tr class="separator:afde33ec04e407698b8d0826140b6619a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac3cf1b13ed9f25d54791b411fba3033"><td class="memItemLeft" align="right" valign="top">std::ostream &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacenc_1_1coordinates.html#aac3cf1b13ed9f25d54791b411fba3033">operator&lt;&lt;</a> (std::ostream &amp;os, const <a class="el" href="classnc_1_1coordinates_1_1_orientation.html">Orientation</a> &amp;orientation)</td></tr>
<tr class="memdesc:aac3cf1b13ed9f25d54791b411fba3033"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stream operator.  <a href="namespacenc_1_1coordinates.html#aac3cf1b13ed9f25d54791b411fba3033">More...</a><br /></td></tr>
<tr class="separator:aac3cf1b13ed9f25d54791b411fba3033"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a3d30468a53ed69d88df51039e1d80720" name="a3d30468a53ed69d88df51039e1d80720"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d30468a53ed69d88df51039e1d80720">&#9670;&nbsp;</a></span>angle()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nc::coordinates::angle </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>vec1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>vec2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>angle between the two vectors </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vec1</td><td>cartesian vector </td></tr>
    <tr><td class="paramname">vec2</td><td>cartesian vector </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>unit vector in x direction </dd></dl>

</div>
</div>
<a id="a21d2802b6436b5e7a57a933b8070c75c" name="a21d2802b6436b5e7a57a933b8070c75c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21d2802b6436b5e7a57a933b8070c75c">&#9670;&nbsp;</a></span>cross()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> nc::coordinates::cross </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>vec1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>vec2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Vector cross product. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vec1</td><td>cartesian vector </td></tr>
    <tr><td class="paramname">vec2</td><td>cartesian vector </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>: the vector cross product </dd></dl>

</div>
</div>
<a id="a061f64eae40b8086f97e56f5ae8f295d" name="a061f64eae40b8086f97e56f5ae8f295d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a061f64eae40b8086f97e56f5ae8f295d">&#9670;&nbsp;</a></span>norm()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nc::coordinates::norm </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Vector norm. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vec</td><td>the cartesian vector </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>: the vector norm </dd></dl>

</div>
</div>
<a id="a999f3588049a4aae8d0a6bbdce9046d2" name="a999f3588049a4aae8d0a6bbdce9046d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a999f3588049a4aae8d0a6bbdce9046d2">&#9670;&nbsp;</a></span>normalize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> nc::coordinates::normalize </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>normalize the input vector </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vec</td><td>the cartesian vector </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>: normalized vector </dd></dl>

</div>
</div>
<a id="af1e4aa015b409852cbcd25eda9481655" name="af1e4aa015b409852cbcd25eda9481655"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1e4aa015b409852cbcd25eda9481655">&#9670;&nbsp;</a></span>operator*() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double nc::coordinates::operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Dot product of two cartesian points. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lhs</td><td>the left hand side object </td></tr>
    <tr><td class="paramname">rhs</td><td>the right hand side object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a0c65cebf40f1ceebbbf80fc56e2d4bdf" name="a0c65cebf40f1ceebbbf80fc56e2d4bdf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0c65cebf40f1ceebbbf80fc56e2d4bdf">&#9670;&nbsp;</a></span>operator*() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> nc::coordinates::operator* </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scalar</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Vector scalar multiplication. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vec</td><td>the cartesian vector </td></tr>
    <tr><td class="paramname">scalar</td><td>the the scalar value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a3582936f7db85a7d9831e9a2402496f9" name="a3582936f7db85a7d9831e9a2402496f9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3582936f7db85a7d9831e9a2402496f9">&#9670;&nbsp;</a></span>operator*() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> nc::coordinates::operator* </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scalar</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Vector scalar multiplication. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">scalar</td><td>the the scalar value </td></tr>
    <tr><td class="paramname">vec</td><td>the cartesian vector </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a6f5b3b14c6ed16cb8e338175e898e538" name="a6f5b3b14c6ed16cb8e338175e898e538"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f5b3b14c6ed16cb8e338175e898e538">&#9670;&nbsp;</a></span>operator+()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> nc::coordinates::operator+ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Addition of two cartesian points. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lhs</td><td>the left hand side object </td></tr>
    <tr><td class="paramname">rhs</td><td>the right hand side object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ab9915ea88507af06a577c392c5a71939" name="ab9915ea88507af06a577c392c5a71939"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9915ea88507af06a577c392c5a71939">&#9670;&nbsp;</a></span>operator-()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> nc::coordinates::operator- </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>rhs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Subtraction of two cartesian points. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">lhs</td><td>the left hand side object </td></tr>
    <tr><td class="paramname">rhs</td><td>the right hand side object </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="af4708307f7b94f72b403c52bb10e81a4" name="af4708307f7b94f72b403c52bb10e81a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4708307f7b94f72b403c52bb10e81a4">&#9670;&nbsp;</a></span>operator/()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> nc::coordinates::operator/ </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>denominator</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Scalar Division a cartesian point. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vec</td><td>the cartesian vector </td></tr>
    <tr><td class="paramname">denominator</td><td>the the scalar value </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a2f71fe712d74cf7677ad64e770761d95" name="a2f71fe712d74cf7677ad64e770761d95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f71fe712d74cf7677ad64e770761d95">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; nc::coordinates::operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_cartesian.html">Cartesian</a> &amp;&#160;</td>
          <td class="paramname"><em>vec</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Stream operator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>the output stream </td></tr>
    <tr><td class="paramname">vec</td><td>the cartesian vector </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="afde33ec04e407698b8d0826140b6619a" name="afde33ec04e407698b8d0826140b6619a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afde33ec04e407698b8d0826140b6619a">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; nc::coordinates::operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_euler.html">Euler</a> &amp;&#160;</td>
          <td class="paramname"><em>Euler</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Stream operator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>the output stream </td></tr>
    <tr><td class="paramname"><a class="el" href="classnc_1_1coordinates_1_1_euler.html" title="Euler.">Euler</a></td><td>the euler angles </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aac3cf1b13ed9f25d54791b411fba3033" name="aac3cf1b13ed9f25d54791b411fba3033"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac3cf1b13ed9f25d54791b411fba3033">&#9670;&nbsp;</a></span>operator&lt;&lt;() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::ostream &amp; nc::coordinates::operator&lt;&lt; </td>
          <td>(</td>
          <td class="paramtype">std::ostream &amp;&#160;</td>
          <td class="paramname"><em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classnc_1_1coordinates_1_1_orientation.html">Orientation</a> &amp;&#160;</td>
          <td class="paramname"><em>orientation</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Stream operator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">os</td><td>the output stream </td></tr>
    <tr><td class="paramname">orientation</td><td>the roll/pitch/yaw angles </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacenc.html">nc</a></li><li class="navelem"><a class="el" href="namespacenc_1_1coordinates.html">coordinates</a></li>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </li>
  </ul>
</div>
</body>
</html>
